﻿//using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Store;
using ConsoleGui;

namespace Program
{
    //[System.Serializable]
    partial class Program
    {
        static protected List<Storage> ShopStors;

        static void Main(string[] args)
        {
            //Проинициализируем
            ShopStors = new List<Storage>();
            Load();

            //Storage Sklad = new Storage("Склад № 1");
            //Goods tovar = new Food("Батон", 100, 10, 10.5, "горчичный");
            //Sklad.input(tovar);
            //Sklad.input(new Food("Кокос", 10, 10, 10.5));
            //ShopStors.Add(Sklad);
            //ShopStors.Add(new Storage("Склад № 2"));

            GUI.MenuName = "Магазин главная:";
            int chose;
            do
            {
                chose = GUI.ConsoleCase("Склады", "Товары", "Отчеты");
                switch (chose)
                {
                    case 0:
                        chose = GUI.ConsoleCase("Выйти из програмы");
                        switch (chose)
                        {
                            case 1:
                                Save();
                                return;//Exit prog
                                break;
                        }
                        break;
                    case 1: //меню работы со складами

                        GUI.MenuName = "Работа со складами:";
                        do
                        {
                            chose = GUI.ConsoleCase("Создать Новый", "Список существующих");
                            switch (chose)
                            {
                                case 0:
                                    break;
                                case 1:
                                    break;
                                case 2:
                                    // после выбора конкретного склада идем в меню операций со складом
                                    chose = GUI.ConsoleCase(ShopStors.ToArray());
                                    if (chose == 0) break;

                                    StorageWork(ShopStors[chose - 1]);
                                    break;
                            }
                        } while (chose != 0);
                        break;
                    case 2: //Меню работы с товарами
                        TovarWork();
                        break;
                    case 3: //Меню работы с отчетами    
                        break;
                }
            } while (true);

        }

        static void StorageWork(Storage CurStor)
        {
            int chose = 0;
            GUI.MenuName = CurStor.ToString();
            do
            {
                chose = GUI.ConsoleCase("Посмотреть остатки");
                switch (chose)
                {
                    case 0:
                        return;
                    case 1:

                        do
                        {
                            chose = GUI.ConsoleCase(CurStor.getGoods());
                        }while(chose != 0);
                        break;
                }
            } while (true);
 
        }

        static void TovarWork()
        {
            GUI.MenuName = "Работа с товарами:";
            int chose;
            do
            {
                chose = GUI.ConsoleCase("Создать Новый");
                switch (chose)
                {
                    case 0: 
                        return;
                    case 1:
                        break;
                }
            } while (true);
 
        }
    }
}